package mysql

import (
	"database/sql"
	_ "github.com/go-sql-driver/mysql"
)

var (
	db *sql.DB
	// userBaseRing   = ketama.NewRing(666)
	// userBaseExRing = ketama.NewRing(888)
)

// 初始化
func initOption() {
	//	initUser()
}

type Config struct {
	Addr    string
	MaxOpen int
	MaxIdle int
}

func Reload(cfg Config) error {
	ndb, err := sql.Open("mysql", cfg.Addr)
	if err != nil {
		return err
	}
	ndb.SetMaxOpenConns(cfg.MaxOpen)
	ndb.SetMaxIdleConns(cfg.MaxIdle)

	var tdb *sql.DB

	tdb, db = db, ndb
	if tdb != nil {
		tdb.Close()
	}
	initOption()
	return nil
}

func Begin() (tx *sql.Tx, err error) {
	return db.Begin()
}

func Close() {
	db.Close()
}
